package com.test15_异常;

/**
 * 异常处理
 */
public class YootkDemo_01 {

    public static void main(String[] args) {
//        test1();
//        test2(args);
        test3();
    }

    public static void test1() {
        try {
            int result = 10 / 0;    // 产生异常之后，之后的代码将不再继续执行
            System.out.println("【计算结果】" + result);
        } catch (ArithmeticException e) {
            // System.out.println(e);
            e.printStackTrace();    // 输出异常信息
        } finally {
            System.out.println("【FINALLY】不管是否出现异常，都会执行本操作");
        }
        System.out.println("【计算结束】");
    }

    public static void test2(String[] args) {
        // 处理多个异常
        try {
            int x = Integer.parseInt(args[0]);
            int y = Integer.parseInt(args[1]);
            int result = x / y;
            System.out.println("【计算结果】" + result);
        } catch (ArithmeticException e) {
            e.printStackTrace();
        } catch (ArrayIndexOutOfBoundsException e) {
            e.printStackTrace();
        } catch (NumberFormatException e) {
            e.printStackTrace();
        } catch (Exception e) {     // 捕获范围大的异常，一定要放在捕获范围小的异常之后
            e.printStackTrace();
        } finally {
            System.out.println("【FINALLY】不管是否出现异常，都会执行本操作");
        }
        System.out.println("【计算结束】");
    }

    public static void test3() {
        // 简化处理，捕获Exception异常
        try {
            int result = 10 / 0;
            System.out.println("【计算结果】" + result);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            System.out.println("【FINALLY】不管是否出现异常，都会执行本操作");
        }
        System.out.println("【计算结束】");
    }
}
